Sophos UTM SSL-VPNとVPC Peeringを組み合わせる
はじめに
こんにちは、あべいかです。 今回はSophosUTMを使ったSSLVPNとVPC Peeringの組み合わせをご紹介します。
概要
SohpsoUTMを使ったSSLVPNについて、整理しましょう。 SophosUTMでは、クライアントに割り当てるアドレスプールを定義することが出来ます。 SSLVPN接続すると、アドレスプールからIPアドレスが払い出され、クライアントに設定されます。 SSLVPN接続後はVPC内のインスタンスにプライベートIPアドレスでアクセスする事が出来ます。 図中のAPサーバから見ると、送信元IPアドレスはアドレスプール内のIPアドレスになります。
アドレスプールのデフォルト値は「10.242.2.0/24」です。 SSLVPN接続後にクライアントでIPアドレスを確認すると、プールの範囲内のIPアドレス「10.242.2.6」が割り当てられています。
C:\Users\***>ipconfig Windows IP 構成 イーサネット アダプター イーサネット: 接続固有の DNS サフィックス . . . . .: リンクローカル IPv6 アドレス. . . . .: fe80::*****:****:****:***** IPv4 アドレス . . . . . . . . . . . .: 10.242.2.6 サブネット マスク . . . . . . . . . .: 255.255.255.252 デフォルト ゲートウェイ . . . . . . .:
クライアントからAPサーバ(192.168.1.181)に対して、pingを実行します。 APサーバでtcpdumpを実行すると「10.242.2.6」 からICMP echo requestを受け取り、echo replayを返しています。 クライアントはecho replyを受け取る事が出来ます。
$ sudo tcpdump -n icmp (略) IP 10.242.2.6 > 192.168.1.181: ICMP echo request, id 1, seq 117, length 40 IP 192.168.1.181 > 10.242.2.6: ICMP echo reply, id 1, seq 117, length 40
SSL VPNの手順はこちらを参照下さい。 【AWS】統合脅威管理「Sophos UTM」を使ってVPCへSSL-VPN接続する(Windows7編)
VPC Peering
次にVPC Peering先への接続について考えてみます。図中、APサーバ②への接続は出来るのでしょうか?
クライアントからAPサーバ②(172.16.1.248)に対して、pingを実行します。 APサーバ②でtcpdumpを実行すると「10.242.2.6」 からICMP echo requestを受け取り、echo replayを返しています。 しかし、クライアントはecho replayを受け取る事は出来ません。
$ sudo tcpdump -n icmp (略) IP 10.242.2.6 > 172.16.1.248: ICMP echo request, id 1, seq 495, length 40 IP 172.16.1.248 > 10.242.2.6: ICMP echo reply, id 1, seq 495, length 40
VPC Peeringでは、Peeringで繋ぐ2VPC間以外のルーティングを持つ事はできません。 APサーバ②が送信したecho replayはVPC Peeringにルーティングされず、クライアントはreplayを受け取る事が出来ません。 つまり、アクセス対象から見た送信元IPアドレスがアドレスプールの場合、通信は成立しないという事になります。
NAT設定
Sophos UTMにはNAT機能があります。 送信元IPアドレスをSophosUTMが持つアドレスに変換して、通信が成立するか確認してみます。
設定手順
ネットワークプロテクション -> NAT -> NATタブ -> 新規NATルール...を選択します。 ルールタイプを[SNAT(送信元)]にします。 トラフィック送信元にVPN Pool(=10.242.2.0/24)、宛先をAPサーバ②のサブネットにします。 この条件にマッチした場合、送信元アドレスをInternalAddress(= SophosUTMが持つプライベートIPアドレス)に指定します。
ルールの作成後、デフォルトでルールは無効になっています。 トグルスイッチを切り替えて、ルールを有効化します。
確認
クライアントからAPサーバ②(172.16.1.248)に対して、pingを実行します。 APサーバ②でtcpdumpを実行すると192.168.1.90からICMP echo requestを受け取り、echo replayを返しています。 クライアントはecho replayを受け取る事が出来ます!
「192.168.1.90」はSophosUTMのIPアドレスです。 NATルールにより、クライアントから送信されたecho requestはSophosUTMから送られたように見えています。 VPC Peeringのルーティング制限をクリアする事が出来ました。
$ sudo tcpdump -n icmp (略) IP 192.168.1.90 > 172.16.1.248: ICMP echo request, id 1, seq 1146, length 40 IP 172.16.1.248 > 192.168.1.90: ICMP echo reply, id 1, seq 1146, length 40
検証環境
以下の環境で確認しました。
- Sophos UTM
- AMI:ami-d6379cd6
- ファームウェアバージョン:9.353-4
参考ページ
以下のページを参考にさせて頂きました。ありがとうございます。
おわりに
SophosUTMでのSSLVPNとNATの組み合わせを試し、 VPC Peeringを使う場合でも、SophosUTMを活用出来る事がわかりました。 くコ:彡